<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
    <th:block th:include="include :: header('修改入库信息')" />
    <th:block th:include="include :: datetimepicker-css" />
</head>
<body class="white-bg">
    <div class="wrapper wrapper-content animated fadeInRight ibox-content">
        <form class="form-horizontal m" id="form-inorder-edit" th:object="${inOrderVo.inOrder}">
            <input name="id" th:value="${inOrderVo.inOrder.id}" type="hidden">
            <input name="status" th:value="0" type="hidden">
            <h4 class="form-header h4">入库信息</h4>
            <div class="form-group">
                <label class="col-sm-3 control-label is-required">入库单编号：</label>
                <div class="col-sm-8">
                    <input name="orderCode" th:value="${inOrderVo.inOrder.orderCode}" class="form-control" type="text" required readonly>
                </div>
            </div>
            <div class="form-group">
                <label class="col-sm-3 control-label">入库类型：</label>
                <div class="col-sm-8">
                    <select id="orderType" name="orderType" class="form-control m-b" th:with="type=${@dict.getType('in_order_type')}" required>
                        <option value="">请选择</option>
                        <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{orderType}"></option>
                    </select>
                </div>
            </div>
            <div class="form-group">
                <label class="col-sm-3 control-label">订单号：</label>
                <div class="col-sm-8">
                    <input name="orderName" th:value="${inOrderVo.inOrder.orderName}" class="form-control" type="text">
                </div>
            </div>
            <div class="form-group">
                <label class="col-sm-3 control-label ">来源订单：</label>
                <div class="col-sm-8">
                    <div class="input-group">
                        <input id="sourceOrderId" name="sourceOrderId" type="hidden" th:value="${inOrderVo.inOrder.sourceOrderId}">
                        <input id="sourceOrderNo" name="sourceOrderNo" class="form-control" type="text"
                               onclick="selectOrder()" th:value="${inOrderVo.inOrder.sourceOrderNo}" readonly>
                        <span class="input-group-addon"><i class="fa fa-search"></i></span>
                    </div>
                </div>
            </div>
            <div class="form-group">
                <label class="col-sm-3 control-label">订单日期：</label>
                <div class="col-sm-8">
                    <div class="input-group date">
                        <input name="orderDate" th:value="${#dates.format(inOrderVo.inOrder.orderDate, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text" required>
                        <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
                    </div>
                </div>
            </div>
            <div class="form-group">
                <label class="col-sm-3 control-label">供应商：</label>
                <div class="col-sm-8">
                    <div class="input-group">
                        <input id="supplierId" name="supplierId" type="hidden" th:value="${inOrderVo.inOrder.supplierId}">
                        <input id="supplierName" name="supplierName" class="form-control" type="text" onclick="selectSupplier()" th:value="${inOrderVo.inOrder.supplierName}" readonly required>
                        <span class="input-group-addon"><i class="fa fa-search"></i></span>
                    </div>
                </div>
            </div>
            <div class="form-group">
                <label class="col-sm-3 control-label is-required">入库仓库：</label>
                <div class="col-sm-8">
                    <div class="input-group">
                        <input id="warehouseId" name="warehouseId" type="hidden" th:value="${inOrderVo.inOrder.warehouseId}">
                        <input id="warehouseName" name="warehouseName" class="form-control" type="text" onclick="selectWarehouse()" th:value="${inOrderVo.inOrder.warehouseName}" readonly required>
                        <span class="input-group-addon"><i class="fa fa-search"></i></span>
                    </div>
                </div>
            </div>

            <div class="form-group">
                <label class="col-sm-3 control-label">仓库库区：</label>
                <div class="col-sm-8">
                    <input id="reservoirName" name="reservoirName" type="hidden" th:value="${inOrderVo.inOrder.reservoirName}" >
                    <select id="reservoirId" name="reservoirId" class="form-control" onclick="onReservoir()">
                        <option value="">请选择</option>
                    </select>
                </div>
            </div>

            <div class="form-group">
                <label class="col-sm-3 control-label">备注：</label>
                <div class="col-sm-8">
                    <textarea name="remark" class="form-control" maxlength="200">[[${inOrderVo.inOrder.remark}]]</textarea>
                </div>
            </div>

            <h4 class="form-header h4">商品数据</h4>
            <div class="row">
                <div class="col-sm-12">
                    <button type="button" class="btn btn-white btn-sm" onclick="addColumn()"><i class="fa fa-plus"> 增加</i></button>
                    <button type="button" class="btn btn-white btn-sm" onclick="sub.delRow()"><i class="fa fa-minus"> 删除</i></button>
                    <div class="col-sm-12 select-table table-striped">
                        <table id="bootstrap-table"></table>
                    </div>
                </div>
            </div>
        </form>
        <div class="row">
            <div class="col-sm-offset-5 col-sm-10">
                <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
                <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
            </div>
        </div>
    </div>
    <th:block th:include="include :: footer" />
    <th:block th:include="include :: datetimepicker-js" />
    <script th:inline="javascript">
        var prefix = ctx + "store/inorder";
        var goodsUnitDatas = [[${@dict.getType('product_unit')}]];//商品单位
        var warehouseId = [[${inOrderVo.inOrder.warehouseId}]];//仓库主键
        var reservoirId = [[${inOrderVo.inOrder.reservoirId}]];//库区主键

        $(function () {
            //初始化仓库设置
            getReservoirList(warehouseId,reservoirId);
        });

        $("#form-inorder-edit").validate({
            focusCleanup: true
        });

        function submitHandler() {
            if ($.validate.form()) {
                $.operate.saveTab(prefix + "/edit", $('#form-inorder-edit').serialize());
            }
        }

        $("input[name='orderDate']").datetimepicker({
            format: "yyyy-mm-dd",
            minView: "month",
            autoclose: true
        });


        $(function() {
            // 初始化数据, 可以由后台传过来
            var data = [[${inOrderVo.items}]];
            var options = {
                data: data,
                pagination: false,
                showSearch: false,
                showRefresh: false,
                showToggle: false,
                showColumns: false,
                sidePagination: "client",
                columns: [{
                    checkbox: true
                },
                    {
                        field: 'index',
                        align: 'center',
                        title: "序号",
                        formatter: function (value, row, index) {
                            var columnIndex = $.common.sprintf("<input type='hidden' name='index' value='%s'>", $.table.serialNumber(index));
                            var id = $.common.sprintf("<input type='hidden' name='items[%s].id' value='%s' readonly>", index, row.id);
                            return columnIndex + $.table.serialNumber(index)+id;
                        }
                    },
                    {
                        field: 'id',
                        align: 'center',
                        title: 'id',
                        visible: false
                    },
                    {
                        field: 'batchNo',
                        align: 'center',
                        title: '批次',
                        formatter: function(value, row, index) {
                            var html = $.common.sprintf("<input class='form-control' type='text' name='items[%s].batchNo' value='%s' >", index, value);
                            return html;
                        }
                    },
                    {
                        field: 'goodsName',
                        align: 'center',
                        title: '商品名称',
                        formatter: function(value, row, index) {
                            var html = $.common.sprintf("<input class='form-control' type='text' name='items[%s].goodsName' value='%s' readonly>", index, value);
                            var goodsId = $.common.sprintf("<input type='hidden' name='items[%s].goodsId' value='%s'>", index, row.goodsId);//商品id 隐藏域
                            var goodsCode = $.common.sprintf("<input type='hidden' name='items[%s].goodsCode' value='%s'>", index, row.goodsCode);//商品code 隐藏域
                            return html+goodsId+goodsCode;
                        },
                        events: onclickEvent
                    },
                    {
                        field: 'planNumber',
                        align: 'center',
                        title: '应入库数量',
                        formatter: function(value, row, index) {
                            var html = '<input class="form-control" type="number" step="0.01" name="items['+index+'].planNumber" value="'+value+'" maxlength="6"  required>';
                            return html;
                        },
                    },
                    {
                        field: 'actualNumber',
                        align: 'center',
                        title: '入库数量',
                        formatter: function(value, row, index) {
                            var html = '<input class="form-control" type="number" step="0.01" name="items['+index+'].actualNumber" value="'+value+'" maxlength="6"  required>';
                            return html;
                        },
                    },
                    {
                        field: 'goodsUnitDesc',
                        align: 'center',
                        title: '单位',
                        formatter: function(value, row, index) {
                            var html = $.common.sprintf("<input class='form-control' type='text' name='items[%s].goodsUnitDesc' value='%s' readonly>", index, value);
                            var goodsUnit = $.common.sprintf("<input type='hidden' name='items[%s].goodsUnit' value='%s'>", index, row.goodsUnit);//商品unit
                            return html+goodsUnit;
                        }
                    },
                    {
                        field: 'packageNumber',
                        align: 'center',
                        title: '包装数量',
                        formatter: function(value, row, index) {
                            var html = '<input class="form-control" type="number" name="items['+index+'].packageNumber" value="'+value+'" maxlength="6" >';
                            return html;
                        },
                    },
                    {
                        field: 'packageUnit',
                        align: 'center',
                        title: '包装规格',
                        formatter: function(value, row, index) {
                            var html = $.common.sprintf("<input class='form-control' type='text' name='items[%s].packageUnit' value='%s' >", index, value);
                            return html;
                        }
                    },
                    {
                        field: 'remark',
                        align: 'center',
                        title: '要求',
                        formatter: function(value, row, index) {
                            var html = '<textarea class="form-control"  name="items['+index+'].remark" maxlength="200">'+value+'</textarea>';
                            return html;
                        }
                    }
                ]
            };
            $.table.init(options);
        });

        //新增table行
        function addColumn() {
            var row = {
                id: "",
                goodsId: "",
                goodsName: "",
                goodsUnit: "",
                goodsUnitDesc:"",
                planNumber: "",
                actualNumber: "",
                batchNo: "",
                packageNumber: "",
                packageUnit: "",
                remark: ""

            }
            sub.addRow(row);
        }

        function selectOrder(){
            var orderType = $("#orderType").val();
            if(orderType==""){
                $.modal.alertWarning("请先选择【入库类型】");
            }else{
                if(orderType=="1"){//生产入库
                    selectProductOrder()
                }
                if(orderType=="2"){//采购入库
                    selectPurchOrder();
                }
            }
        }


        /* 选择生产订单 */
        var productPrefix = ctx + "order/productorder"
        function selectProductOrder() {
            var url = productPrefix + '/selectProductOrder';
            var options = {
                title: '选择生产订单',
                url: url,
                callBack: doSubmitProductOrder
            };
            $.modal.openOptions(options);
        }

        function doSubmitProductOrder(index, layero){
            var iframeWin = layero.find("iframe")[0].contentWindow.$.table;
            var rows = iframeWin.selectFirstColumns();//调用子页面的方法 获取ID
            if (rows.length == 0) {
                $.modal.alertWarning("请至少选择一条记录");
                return;
            }
            var id = rows.join();
            $('#sourceOrderId').val(id);
            var orderNo=iframeWin.selectColumns("orderNo").join();//调用子页面的方法 获取ID
            $('#sourceOrderNo').val(orderNo);

            //重置子表
            sub.removeAllRow();
            productOrder(id);

            $.modal.close(index);
        }

        //选择生产单填充子表信息
        function productOrder(id) {
            var data = {"id": id};
            var config = {
                url: productPrefix + "/ajaxData",
                type: "post",
                dataType: "json",
                data: data,
                beforeSend: function () {
                    $.modal.loading("正在处理中，请稍后...");
                },
                success: function (result) {
                    if (result.code == web_status.SUCCESS) {
                        var value = result.data;
                        var doNumber = numSub(value.goodsNum,value.inNum);
                        var row = {
                            id: "",
                            goodsId: value.goodsId,
                            goodsCode: value.goodsCode,
                            goodsName: value.goodsName,
                            goodsUnit: value.goodsUnit,
                            goodsUnitDesc: value.goodsUnitDesc,
                            planNumber: doNumber,
                            actualNumber: doNumber,
                            batchNo: value.batchNo,
                            packageNumber: "",
                            packageUnit: "",
                            remark: ""
                        }
                        sub.addRow(row);
                    } else {
                        $.modal.alertError(result.msg);
                    }
                    $.modal.closeLoading();
                }

            };
            $.ajax(config);
        };

        /* 选择采购订单 */
        var purchOrderPrefix = ctx + "order/purchorder"
        function selectPurchOrder() {
            var url = purchOrderPrefix + '/selectPurchOrder';
            var options = {
                title: '选择采购订单',
                url: url,
                callBack: doSubmitPurchOrder
            };
            $.modal.openOptions(options);
        }

        function doSubmitPurchOrder(index, layero){
            var iframeWin = layero.find("iframe")[0].contentWindow.$.table;
            var rows = iframeWin.selectFirstColumns();//调用子页面的方法 获取ID
            if (rows.length == 0) {
                $.modal.alertWarning("请至少选择一条记录");
                return;
            }
            $('#sourceOrderId').val(rows.join())
            var orderNo=iframeWin.selectColumns("orderNo").join();//调用子页面的方法 获取ID
            $('#sourceOrderNo').val(orderNo)

            //重置子表
            sub.removeAllRow();
            purchOrder(rows.join());

            $.modal.close(index);
        }

        //选择采购单，填充子表信息
        function purchOrder(mainId) {
            var data = {"mainId": mainId};
            var config = {
                url: purchOrderPrefix + "/item/ajaxList",
                type: "post",
                dataType: "json",
                data: data,
                beforeSend: function () {
                    $.modal.loading("正在处理中，请稍后...");
                },
                success: function (result) {
                    if (result.code == web_status.SUCCESS) {
                        $.each(result.data, function (index, value) {
                            var doNumber = numSub(value.planNumber,value.inNumber);
                            var row = {
                                id: "",
                                goodsId: value.goodsId,
                                goodsCode: value.goodsCode,
                                goodsName: value.goodsName,
                                goodsUnit: value.goodsUnit,
                                goodsUnitDesc: value.goodsUnitDesc,
                                planNumber: doNumber,
                                actualNumber: doNumber,
                                batchNo: "",
                                packageNumber: "",
                                packageUnit: "",
                                remark: ""
                            }
                            sub.addRow(row);
                        });
                    } else {
                        $.modal.alertError(result.msg);
                    }
                    $.modal.closeLoading();
                }

            };
            $.ajax(config);
        };


        // /* 选择生产订单 */
        // var saleOrderPrefix = ctx + "order/productorder"
        // function selectProductOrder() {
        //     var url = saleOrderPrefix + '/selectProductOrder';
        //     var options = {
        //         title: '选择销售订单',
        //         url: url,
        //         callBack: doSubmitProductOrder
        //     };
        //     $.modal.openOptions(options);
        // }
        //
        // function doSubmitProductOrder(index, layero){
        //     var iframeWin = layero.find("iframe")[0].contentWindow.$.table;
        //     var rows = iframeWin.selectFirstColumns();//调用子页面的方法 获取ID
        //     if (rows.length == 0) {
        //         $.modal.alertWarning("请至少选择一条记录");
        //         return;
        //     }
        //     $('#sourceOrderId').val(rows.join())
        //     var orderNo=iframeWin.selectColumns("orderNo").join();//调用子页面的方法 获取ID
        //     $('#sourceOrderNo').val(orderNo)
        //
        //     //重置子表
        //     sub.removeAllRow();
        //     productOrder(rows.join());
        //
        //     $.modal.close(index);
        // }
        //
        // //填充销售单子表信息
        // var saleOrderItemPrefix = ctx + "order/productorder/item"
        // function productOrder(mainId) {
        //     var data = {"inOrderId": mainId};
        //     var config = {
        //         url: saleOrderItemPrefix + "/ajaxList",
        //         type: "post",
        //         dataType: "json",
        //         data: data,
        //         beforeSend: function () {
        //             $.modal.loading("正在处理中，请稍后...");
        //         },
        //         success: function (result) {
        //             if (result.code == web_status.SUCCESS) {
        //                 $.each(result.data, function (index, value) {
        //                     var row = {
        //                         id: "",
        //                         goodsId: value.goodsId,
        //                         goodsCode: value.goodsCode,
        //                         goodsName: value.goodsName,
        //                         goodsUnit: value.goodsUnit,
        //                         goodsUnitDesc: value.goodsUnitDesc,
        //                         planNumber: value.planNumber,
        //                         batchNo: "",
        //                         packageNumber: "",
        //                         packageUnit: "",
        //                         remark: ""
        //                     }
        //                     sub.addRow(row);
        //                 });
        //             } else {
        //                 $.modal.alertError(result.msg);
        //             }
        //             $.modal.closeLoading();
        //         }
        //
        //     };
        //     $.ajax(config);
        // };



        /* 选择供应商 */
        var supplierPrefix = ctx + "basic/supplier"
        function selectSupplier() {
            var url = supplierPrefix + '/selectSupplier';
            var options = {
                title: '选择供应商',
                url: url,
                callBack: doSubmitSupplier
            };
            $.modal.openOptions(options);
        }

        function doSubmitSupplier(index, layero){
            var iframeWin = layero.find("iframe")[0].contentWindow.$.table;
            var rows = iframeWin.selectFirstColumns();//调用子页面的方法 获取ID
            if (rows.length == 0) {
                $.modal.alertWarning("请至少选择一条记录");
                return;
            }
            $('#supplierId').val(rows.join())
            var supplierName=iframeWin.selectColumns("supplierName").join();//调用子页面的方法 获取ID
            $('#supplierName').val(supplierName)

            $.modal.close(index);
        }

        /* 选择仓库 */
        var warehousePrefix = ctx + "basic/warehouse"
        function selectWarehouse() {
            var url = warehousePrefix + '/selectWarehouse';
            var options = {
                title: '选择仓库',
                url: url,
                callBack: doSubmitWarehouse
            };
            $.modal.openOptions(options);
        }

        function doSubmitWarehouse(index, layero){
            var iframeWin = layero.find("iframe")[0].contentWindow.$.table;
            var rows = iframeWin.selectFirstColumns();//调用子页面的方法 获取ID
            if (rows.length == 0) {
                $.modal.alertWarning("请至少选择一条记录");
                return;
            }
            $('#warehouseId').val(rows.join())
            var warehouseName=iframeWin.selectColumns("warehouseName").join();
            $('#warehouseName').val(warehouseName)

            //调用库区
            getReservoirList(rows.join(),null)

            $.modal.close(index);
        }

        /**
         * 获取仓库库区下拉框信息
         */
        var reservoirPrefix = ctx + "basic/reservoir"
        function getReservoirList(warehouseId,reservoirId){
            var data = {"warehouseId":warehouseId};
            var config = {
                url: reservoirPrefix + "/ajaxList",
                type: "post",
                dataType: "json",
                data: data,
                beforeSend: function () {
                    $.modal.loading("正在处理中，请稍后...");
                },
                success: function(result) {
                    if (result.code == web_status.SUCCESS) {
                        var str="<option value='0'>请选择</option>";
                        $.each( result.data,function(index,value){
                            if(value.id == reservoirId){
                                str+='<option value="'+value.id+'" selected>'+value.reservoirName+'</option>';
                            }else{
                                str+='<option value="'+value.id+'">'+value.reservoirName+'</option>';
                            }
                        });
                        $('#reservoirId').empty();
                        $('#reservoirId').append(str);
                    }else {
                        $.modal.alertError(result.msg);
                    }
                    $.modal.closeLoading();
                }

            };
            $.ajax(config)
        }

        function onReservoir() {
            var id = $("#reservoirId option:selected").val();
            if(id=='0'){
                $('#reservoirName').val("");
            }else{
                $('#reservoirName').val($("#reservoirId option:selected").text());
            }
        }

        /* 选择商品 */
        var goodsPrefix = ctx + "basic/goods";
        function  selectShopGoods() {// index:所在行的索引
            var url = goodsPrefix + '/selectGoods';
            var options = {
                title: '选择商品',
                url: url,
                callBack: doSubmitGoods
            };
            $.modal.openOptions(options);
        }
        var orderSeedId;//子表ID
        function doSubmitGoods(index, layero){
            var iframeWin = layero.find("iframe")[0].contentWindow.$.table;
            var rows = iframeWin.selectFirstColumns();//调用子页面的方法 获取ID
            if (rows.length == 0) {
                $.modal.alertWarning("请至少选择一条记录");
                return;
            }

            var goodsId=iframeWin.selectColumns("id").join();//调用子页面的方法 获取ID
            var goodsCode=iframeWin.selectColumns("goodsCode").join();//调用子页面的方法 获取ID
            var goodsName=iframeWin.selectColumns("goodsName").join();//调用子页面的方法 获取ID
            var goodsUnit=iframeWin.selectColumns("goodsUnit").join();//调用子页面的方法 获取ID
            var planNumber=iframeWin.selectColumns("planNumber").join();//调用子页面的方法 获取ID
            var goodsUnitDesc = "";//单位描述
            $.each(goodsUnitDatas,function(index,obj){  //index:索引obj:循环的每个元素
                if(obj.dictValue == goodsUnit){
                    goodsUnitDesc= obj.dictLabel;
                }
            });
            var data = $("#" + table.options.id).bootstrapTable('getData');
            var flag=0;
            $.each(data,function(index,obj) {  //index:索引obj:循环的每个元素
                if(obj.goodsId ==  goodsId){
                    flag=1;
                    return false; //跳出循环
                }
            });
            if(flag == 1){$.modal.alertWarning("商品已在清单中!"); return;}
            $.modal.close(index);

            var _data = new Object();//某行数据
            _data.goodsId = goodsId;
            _data.goodsCode = goodsCode;
            _data.goodsName = goodsName;
            _data.goodsUnit = goodsUnit;
            _data.goodsUnitDesc = goodsUnitDesc;
            _data.planNumber = planNumber;
            _data.actualNumber = planNumber;
            //_data.id = orderSeedId;
            $("#" + table.options.id).bootstrapTable("updateRow",{index : orderSeedId,row : _data});
            console.log(data)

        }

        /**
         * 选中商品事件
         * */
        window.onclickEvent = {
            'click .form-control': function (e, value, row, index) {
                orderSeedId = index
                selectShopGoods();
            }
        };
    </script>
</body>
</html>